home *** CD-ROM | disk | FTP | other *** search
- 100 REM ******************************
- 110 REM *** ***
- 120 REM *** FOOTBALL84 ***
- 130 REM *** WRITTEN BY: LES SUMI ***
- 140 REM *** 16 JANUARY 1984 ***
- 150 REM *** ***
- 160 REM ******************************
- 170 REM
- 180 REM
- 185 CLR
- 190 DIM S(2),STR(2,5),N$(2),L$(12),Q(2),SC(2),D$(8),T1(2),TP(2)
- 200 GOSUB 6190
- 210 D$(1)="STANDARD DEFENCE": D$(2)="SHORT YARDAGE DEFENCE"
- 220 D$(3)="'NICKEL' DEFENCE": D$(4)="'PREVENT' DEFENCE"
- 230 D$(5)="PARTIAL BLITZ": D$(6)="ALL-OUT BLITZ"
- 240 D$(7)="TIMEOUT": D$(8)="STATUS"
- 250 FOR I=1 TO 2
- 260 F1(I)=0: R1(I)=0: P1(I)=0: NY1(I)=0: P2(I)=0: P3(I)=0: I1(I)=0: PA(I)=0
- 270 PC(I)=0:SC(I)=0:T1(I)=3:P4(I)=0:P5(I)=0:F2(I)=0:F3(I)=0:QQ(I)=0:NEXTI
- 280 Q=1: QQ=0: E=0: HT=0: T=0: W=0: WW=0: OT=0: TP(1)=0: TP(2)=0
- 290 REM CHOOSE TEAM NAMES
- 300 PRINT"[147]":PRINT:PRINTTAB(11);"*** FOOTBALL84 ***"
- 310 PRINT"CHOOSE TEAM NAMES[146]"
- 320 PRINT:PRINT"YOUR TEAM NAME";
- 330 INPUT N$(1)
- 340 IF LEN(N$(1))<12 THEN 360
- 350 PRINT"ONLY 12 CHARACTERS.....TRY AGAIN":PRINT: GOTO 320
- 360 PRINT:PRINT:PRINT:PRINT
- 370 PRINT"COMPUTER TEAM NAME";
- 380 INPUT N$(2)
- 390 IF LEN(N$(2))<12 THEN 410
- 400 PRINT"ONLY 12 CHARACTERS.....TRY AGAIN":PRINT: GOTO 370
- 410 PRINT
- 420 REM CHOOSE LEVEL OF DIFFICULTY (WIMP FACTOR)
- 430 PRINT"[147]CHOOSE LEVEL OF DIFFICULTY:[146]"
- 440 PRINT" (WIMP FACTOR) [146]":PRINT:PRINT:PRINT
- 450 PRINT" <W>IMPY - WHEN YOU LOOK UP 'WIMP' IN"
- 460 PRINT" THE DICTIONARY, YOU SEE"
- 470 PRINT" YOUR REFLECTION!!":PRINT
- 480 PRINT" <E>ASY - YOUR IDEA OF A CHALLENGE"
- 490 PRINT" IS TO OPEN A BOX OF"
- 500 PRINT" CORNFLAKES WITHOUT READING"
- 510 PRINT" THE INSTRUCTIONS!!":PRINT
- 520 PRINT" <M>EDIUM - YOU HAVE THE HEART OF A"
- 530 PRINT" LION BUT FEET OF CLAY!!":PRINT
- 540 PRINT" <H>ARD - YOU HAVE MORE COURAGE"
- 550 PRINT" THAN BRAINS!!":PRINT
- 560 INPUT L$
- 570 IF L$="W" THEN WF=-1.4: GOTO 620
- 580 IF L$="E" THEN WF=-0.5: GOTO 620
- 590 IF L$="M" THEN WF=-0.2: GOTO 690
- 600 IF L$="H" THEN WF=1.1: GOTO 690
- 610 PRINT:PRINT"INVALID INPUT...TRY AGAIN":PRINT:GOTO 560
- 620 PRINT"[147]"
- 630 PRINTTAB(10);" [223][169] [223][146]"
- 640 PRINTTAB(10);" [146]"
- 650 PRINTTAB(10);" [146][169]"
- 660 PRINTTAB(10);" [169][223] [146]"
- 670 PRINTTAB(10);"[223] [146][169][223] [146][169] [146]"
- 680 GOSUB 6280
- 690 REM CHOOSE TEAM STRENGTHS
- 700 PRINT"[147]":PRINT"CHOOSE TEAM STRENGTHS[146] (SUM MUST BE TEN)":PRINT:PRINT
- 710 L$(1)="RUSHING OFFENCE": L$(2)="PASSING OFFENCE": L$(3)="RUSHING DEFENCE"
- 720 L$(4)="PASSING DEFENCE": L$(5)="SPECIAL TEAMS "
- 730 FOR I=1 TO 2
- 740 FOR K=1 TO 5: STR(I,K)=0: NEXT K: NEXT I
- 750 PRINT"";N$(1);""
- 760 TQ=0
- 770 FOR K=1 TO 5
- 780 PRINTL$(K);
- 790 INPUT STR(1,K): STR(1,K)=ABS(STR(1,K))
- 800 TQ=TQ+STR(1,K)
- 810 NEXT K
- 820 PRINT"TOTAL: ";TQ:PRINT: GOSUB 6270
- 830 IF TQ<=10 THEN 870
- 840 PRINT"TOTAL GREATER THAN TEN.....ARE YOU"
- 850 PRINT"TRYING TO CHEAT OR CAN'T YOU COUNT?"
- 860 PRINT"TRY AGAIN": GOSUB 6270: GOTO 750
- 870 PRINT"VERIFY SELECTIONS[146]": PRINT:PRINT
- 880 PRINT"DO YOU WISH TO CHANGE YOUR MIND";
- 890 INPUT CHECK$
- 900 IF LEFT$(CHECK$,1)="Y" THEN 750
- 910 FOR K=1 TO 5
- 920 IF STR(1,K)>4+WF THEN STR(1,K)=3.5
- 930 NEXT K
- 940 PRINT
- 950 PRINT"COMPUTER SELECTS ";N$(2)
- 960 PRINT"TEAM STRENGTHS...": GOSUB 6270
- 970 TQ=0
- 980 FOR K=2 TO 5
- 990 STR(2,K)=INT(4*RND(.))
- 1000 TQ=TQ+STR(2,K)
- 1010 NEXT K
- 1020 IF TQ<6 OR TQ>9 THEN 970
- 1030 STR(2,1)=10-TQ
- 1040 REM COIN TOSS
- 1050 PRINT"[147]COIN TOSS[146]":PRINT:PRINT
- 1060 ZZ=INT(RND(.)*2)+1
- 1070 ON ZZ GOTO 1160,1080
- 1080 S=STR(2,3)+STR(2,4)-STR(2,1)-STR(2,2)
- 1090 IF S>0 AND RND(.)<0.5 THEN 1130
- 1100 PRINT N$(ZZ);" WON THE TOSS AND ELECTS"
- 1110 PRINT" TO RECEIVE": QB=2: MLB=1
- 1120 GOTO 1240
- 1130 PRINT N$(ZZ);" WON THE TOSS AND ELECTS"
- 1140 PRINT " TO KICKOFF": QB=1: MLB=2
- 1150 GOTO 1240
- 1160 PRINT N$(ZZ);" WON THE TOSS"
- 1170 PRINT"WILL YOU <K>ICK OR <R>ECEIVE";
- 1180 INPUT G$
- 1190 IF LEFT$(G$,1)<>"K" AND LEFT$(G$,1)<>"R" THEN 1170
- 1200 IF LEFT$(G$,1)="K" THEN 1230
- 1210 QB=1: MLB=2
- 1220 GOTO 1240
- 1230 QB=2: MLB=1
- 1240 IF QB=1 THEN SX=2
- 1250 IF QB=2 THEN SX=1
- 1260 REM KICKOFF
- 1270 IF OT=1 AND SC(1)<>SC(2) THEN 8890
- 1280 DOWN=1: PRINT:PRINT:PRINT" *** KICKOFF ***":PRINT
- 1290 IF QB=2 THEN 1320
- 1300 IF T>55 AND (SC(1)-SC(2))>0 THEN OS$="Y": GOTO 1340
- 1310 GOTO 1350
- 1320 PRINT"ON-SIDE KICK";
- 1330 INPUT OS$
- 1340 IF LEFT$(OS$,1)="Y" THEN 1680
- 1350 KL=45+INT(26*RND(.)+STR(MLB,5))
- 1360 PRINT KL;" YARD KICKOFF..."
- 1370 YL=65-KL
- 1380 IF YL<-10 THEN 1580
- 1390 IF YL<0 THEN 1470
- 1400 PRINT"BALL IS ON ";YL;" YARDLINE."
- 1410 IF RND(.)>0.94 THEN 1610
- 1420 RL=INT(18*RND(.)+18*RND(.)+STR(QB,5))
- 1430 YL=YL+RL
- 1440 IF YL<0 THEN 1580
- 1450 PRINTRL;" YARD RETURN."
- 1460 GOTO 1650
- 1470 PRINT"BALL IS ";ABS(YL);" YARDS DEEP"
- 1480 PRINT"IN THE ENDZONE."
- 1490 IF QB=1 THEN 1530
- 1500 PRINTN$(2);" ELECTS TO DOWN THE BALL IN"
- 1510 PRINT"THE ENDZONE...";
- 1520 GOTO 1580
- 1530 PRINT"DO YOU WANT TO BRING IT OUT";
- 1540 INPUT R$
- 1550 IF LEFT$(R$,1)="N" THEN 1580
- 1560 GOTO 1410
- 1570 PRINT"KICK RETURNER TACKLED IN ENDZONE"
- 1580 PRINT"TOUCHBACK."
- 1590 YL=20
- 1600 GOTO 1650
- 1610 RL=INT(100*RND(.))+10
- 1620 YL=YL+RL
- 1630 IF YL>99 THEN 7510: GOTO 1270
- 1640 PRINTRL;" YARD RETURN."
- 1650 Y=YL: A=QB: IF YL>50 THEN A=MLB: Y=100-YL
- 1660 GOTO 1770
- 1670 PRINT"BALL IS ON";N$(A);Y;"YARDLINE.": GOTO 1770
- 1680 IF RND(.)<0.75 THEN 1720
- 1690 PRINT"ON-SIDE KICK SUCCESSFUL."
- 1700 W=QB: QB=MLB: MLB=W: YL=55-INT(9*RND(.)): GOTO 1650
- 1710 GOTO 1770
- 1720 PRINT"ON-SIDE KICK NOT SUCCESSFUL."
- 1730 YL=55-INT(9*RND(.))
- 1740 GOTO 1650
- 1750 RETURN
- 1760 REM SELECT OFFENSIVE PLAY
- 1770 DOWN=1: YFIRST=10
- 1780 PRINT:PRINT"FIRST DOWN ";N$(QB);"."
- 1790 PRINT"BALL ON ";N$(A);Y;" YARDLINE."
- 1800 ZZ=TI
- 1810 IF QB=2 THEN 9510
- 1820 PRINT:PRINT"SELECT OFFENSIVE PLAY";
- 1830 INPUT OP
- 1840 IF (TI-ZZ)<1800 THEN 1890
- 1850 PRINT:PRINT"DELAY OF GAME PENALTY ON ";N$(QB);"!!"
- 1860 YL=YL-5: YFIRST=YFIRST+5: P2(QB)=P2(QB)+1: P3(QB)=P3(QB)+5
- 1870 IF YL-5<1 THEN YL=INT(YL/2)
- 1880 GOTO 6020
- 1890 OP=INT(OP)
- 1900 IF OP>0 AND OP<15 THEN 2070
- 1910 PRINT:PRINT"OFFENSIVE PLAYS:[146]":PRINT
- 1920 PRINT"1. LINE PLUNGE"
- 1930 PRINT"2. TRAP PLAY"
- 1940 PRINT"3. POWER SWEEP"
- 1950 PRINT"4. DRAW PLAY"
- 1960 PRINT"5. SCREEN PASS"
- 1970 PRINT"6. SHORT PASS"
- 1980 PRINT"7. MEDIUM PASS"
- 1990 PRINT"8. LONG PASS"
- 2000 PRINT"9. SIDELINE PASS"
- 2010 PRINT"10. PUNT"
- 2020 PRINT"11. FIELD GOAL"
- 2030 PRINT"12. STATUS"
- 2040 PRINT"13. TIMEOUT"
- 2050 PRINT"14. QUIT"
- 2060 GOTO 1800
- 2070 REM SELECT DEFENSIVE PLAY
- 2080 IF OP>9 THEN 2210
- 2090 IF MLB=2 THEN 10060
- 2100 PRINT:PRINT"SELECT DEFENSIVE PLAY";
- 2110 INPUT DP
- 2120 DP=INT(DP)
- 2130 IF DP>0 AND DP<9 THEN 2190
- 2140 PRINT:PRINT"DEFENSIVE PLAY:[146]":PRINT
- 2150 FOR I=1 TO 8
- 2160 PRINT I;". ";D$(I)
- 2170 NEXT I
- 2180 GOTO 2100
- 2190 IF DP=7 THEN 6800
- 2200 IF DP=8 THEN GOSUB 7620: GOTO 2070
- 2210 IF OP=14 THEN 7920
- 2220 ON OP GOTO2230,2560,2900,3210,3570,3910,4390,4860,5320,5380,5570,7620,6800
- 2230 REM 1. LINE PLUNGE
- 2240 PEN=0: HOLD=0: PI=0: ICEPT=0: FUMB=0
- 2250 PRINT:PRINT"LINE PLUNGE..."
- 2260 PRINT" ";D$(DP);"..."
- 2270 IF RND(.)<0.02 THEN FUMB=1
- 2280 IF RND(.)<0.05 THEN PENALTY=1
- 2290 GOSUB 9460
- 2300 IF RND(.)<0.04 THEN 2330
- 2310 GAIN=3*(STR(QB,1)-STR(MLB,3))+4*RND(.)
- 2320 GAIN=INT(GAIN): GOTO 2350
- 2330 GAIN=30*RND(.)+20*(STR(QB,1)-STR(MLB,3))
- 2340 GAIN=INT(GAIN)
- 2350 ON DP GOTO 2360,2370,2400,2420,2430,2460
- 2360 GOTO 2490
- 2370 IF RND(.)<0.02 THEN GAIN=GAIN+INT(40*RND(.)): GOTO 2490
- 2380 IF RND(.)<0.20 THEN GAIN=INT(-4*RND(.)): GOTO 2490
- 2390 GAIN=GAIN-1: GOTO 2490
- 2400 IF RND(.)<0.5 THEN 2490
- 2410 GAIN=GAIN+INT(5*RND(.)): GOTO 2490
- 2420 IF RND(.)<0.5 THEN 2490
- 2430 IF RND(.)<0.20 THEN GAIN=INT(-4*RND(1)): GOTO 2490
- 2440 IF RND(.)<0.3 THEN GAIN=GAIN+INT(30*RND(.)): GOTO 2490
- 2450 GOTO 2490
- 2460 IF RND(.)<0.30 THEN GAIN=INT(-4*RND(.)): GOTO 2490
- 2470 IF RND(.)<0.5 THEN GAIN=GAIN+INT(40*RND(.))
- 2480 IF YL+GAIN>99 THEN 7510
- 2490 IF GAIN<0 THEN GOSUB 6940
- 2500 IF GAIN=0 THEN GOSUB 6960
- 2510 IF GAIN>0 THEN GOSUB 6980
- 2520 IF FUMB=1 THEN GOSUB 6450: PEN=0: GOTO 5850
- 2530 IF PENALTY<>1 THEN 2550
- 2540 PRINT"...BUT THERE'S A PENALTY ON THE PLAY": PENALTY=0: GOSUB 7010
- 2550 GOTO 5850
- 2560 REM 2. TRAP PLAY
- 2570 PEN=0: HOLD=0: PI=0: ICEPT=0: FUMB=0
- 2580 PRINT:PRINT"TRAP PLAY..."
- 2590 PRINT" ";D$(DP);"..."
- 2600 R=STR(QB,1)-STR(MLB,3)
- 2610 IF RND(.)<0.055 THEN PEN=1
- 2620 IF RND(.)<0.05 THEN FUMB=1
- 2630 GOSUB 9460
- 2640 IF RND(.)<0.15 THEN 2660
- 2650 GAIN=INT(4*RND(.)+5*R): GOTO 2670
- 2660 GAIN=INT(50*RND(.))
- 2670 ON DP GOTO 2680,2690,2720,2740,2760,2790
- 2680 GOTO 2830
- 2690 IF RND(.)<0.03 THEN GAIN=GAIN+INT(40*RND(.)): GOTO 2830
- 2700 IF RND(.)<0.5 THEN GAIN=INT(-4*RND(.)): GOTO 2830
- 2710 GAIN=GAIN-1: GOTO 2830
- 2720 IF RND(.)<0.2 AND D>0 THEN GAIN=GAIN+INT(30*RND(.)): GOTO 2830
- 2730 GAIN=GAIN+INT(5*RND(.)): GOTO 2830
- 2740 IF RND(.)<0.3 AND R>0 THEN GAIN=GAIN+INT(40*RND(.)): GOTO 2830
- 2750 GAIN=GAIN+INT(10*RND(1)): GOTO 2830
- 2760 IF RND(.)<0.3 THEN GAIN=INT(-5*RND(.)): GOTO 2830
- 2770 IF RND(.)<0.5 THEN 2830
- 2780 GAIN=GAIN+INT(40*RND(.)): GOTO 2830
- 2790 IF RND(.)<0.6 THEN GAIN=INT(-5*RND(1)): GOTO 2830
- 2800 IF RND(.)<0.5 THEN 2830
- 2810 GAIN=GAIN+INT(40*RND(.))
- 2820 IF YL+GAIN>99 THEN 7510
- 2830 IF GAIN<0 THEN GOSUB 6940
- 2840 IF GAIN=0 THEN GOSUB 6960
- 2850 IF GAIN>0 THEN GOSUB 6980
- 2860 IF FUMB=1 THEN GOSUB 6450: PEN=0: GOTO 5850
- 2870 IF PENALTY<>1 THEN 2890
- 2880 PRINT"...BUT THERE'S A PENALTY ON THE PLAY.": PENALTY=0: GOSUB 7010
- 2890 GOTO 5850
- 2900 REM 3. POWER SWEEP
- 2910 PEN=0: HOLD=0: PI=0: ICEPT=0: FUMB=0
- 2920 PRINT:PRINT"POWER SWEEP..."
- 2930 PRINT" ";D$(DP);"..."
- 2940 R=STR(QB,1)-STR(MLB,3)
- 2950 IF RND(.)<0.1 THEN PEN=1
- 2960 IF RND(.)<0.07 THEN FUMB=1
- 2970 GOSUB 9460
- 2980 IF RND(.)<0.2 AND R>0 THEN 3000
- 2990 GAIN=INT(2*RND(.)+10*RND(.)*R): GOTO 3010
- 3000 GAIN=INT(40*RND(.))
- 3010 ON DP GOTO 3020,3030,3050,3070,3080,3110
- 3020 GOTO 3140
- 3030 IF RND(.)<0.1 AND R>0 THEN GAIN=INT(50*RND(.)): GOTO 3140
- 3040 GAIN=GAIN-INT(3*RND(.)): GOTO 3140
- 3050 IF RND(.)<0.5 THEN 3140
- 3060 GAIN=GAIN+INT(5*RND(.)): GOTO 3140
- 3070 GAIN=GAIN+INT(20*RND(.)): GOTO 3140
- 3080 IF RND(.)<0.4 THEN GAIN=INT(-8*RND(1)): GOTO 3140
- 3090 IF RND(.)<0.7 THEN 3140
- 3100 GAIN=GAIN+INT(40*RND(.)): GOTO 3140
- 3110 IF RND(.)<0.6 THEN GAIN=INT(-10*RND(.)): GOTO 3140
- 3120 IF RND(.)<0.7 THEN GAIN=GAIN+INT(30*RND(.))
- 3130 IF YL+GAIN>99 THEN 7510
- 3140 IF GAIN<0 THEN GOSUB 6940
- 3150 IF GAIN=0 THEN GOSUB 6960
- 3160 IF GAIN>0 THEN GOSUB 6980
- 3170 IF FUMB=1 THEN GOSUB 6450: PEN=0: GOTO 5850
- 3180 IF PENALTY<>1 THEN 3200
- 3190 PRINT"...BUT THERE'S A PENALTY ON THE PLAY.": PENALTY=0: GOSUB 7010
- 3200 GOTO 5850
- 3210 REM 4. DRAW PLAY
- 3220 PEN=0: HOLD=0: PI=0: ICEPT=0: FUMB=0
- 3230 PRINT:PRINT"DRAW PLAY..."
- 3240 PRINT" ";D$(DP);"..."
- 3250 RP=STR(QB,1)+STR(QB,2)-STR(MLB,3)-STR(MLB,4)
- 3260 IF RND(.)<0.075 THEN PENALTY=1
- 3270 IF RND(.)<0.05 THEN FUMB=1
- 3280 GOSUB 9460
- 3290 IF RND(.)<0.1 THEN 3330
- 3300 GAIN=INT(10*RND(.)*RP)
- 3310 IF GAIN=0 THEN GAIN=INT(5*RND(.))-2
- 3320 GOTO 3340
- 3330 GAIN=INT(40*RND(.))
- 3340 ON DP GOTO 3350,3360,3380,3410,3430,3460
- 3350 GOTO 3500
- 3360 IF RND(.)<0.05 THEN GAIN=GAIN+INT(40*RND(.)): GOTO 3500
- 3370 GAIN=GAIN+INT(-10*RND(.)): GOTO 3500
- 3380 IF RND(.)<0.5 THEN GAIN=GAIN+INT(10*RND(.)): GOTO 3500
- 3390 IF RND(.)<0.15 THEN GAIN=INT(20*RND(.)): GOTO 3500
- 3400 GOTO 3500
- 3410 IF RND(.)<0.6 THEN GAIN=GAIN+INT(15*RND(.)): GOTO 3500
- 3420 GAIN=GAIN+INT(4*RND(.)): GOTO 3500
- 3430 IF RND(.)<0.5 THEN GAIN=INT(-9*RND(1)): GOTO 3500
- 3440 IF RND(.)<0.5 THEN GAIN=GAIN+INT(25*RND(.)): GOTO 3500
- 3450 GOTO 3500
- 3460 IF RND(.)<0.65 THEN GAIN=INT(-9*RND(.)): GOTO 3500
- 3470 IF RND(.)<0.65 THEN 3500
- 3480 GAIN=GAIN+INT(35*RND(.))
- 3490 IF YL+GAIN>99 THEN 7510
- 3500 IF GAIN<0 THEN GOSUB 6940
- 3510 IF GAIN=0 THEN GOSUB 6960
- 3520 IF GAIN>0 THEN GOSUB 6980
- 3530 IF FUMB=1 THEN GOSUB 6450: PEN=0: GOTO 5850
- 3540 IF PENALTY<>1 THEN 3560
- 3550 PRINT"...BUT THERE'S A PENALTY ON THE PLAY.": PENALTY=0: GOSUB 7010
- 3560 GOTO 5850
- 3570 REM 5. SCREEN PASS
- 3580 COMP=0: HOLD=0: SACK=0: PI=0: PENALTY=0
- 3590 PRINT:PRINT"SCREEN PASS..."
- 3600 PRINT" ";D$(DP);"..."
- 3610 P=STR(QB,2)-STR(MLB,4)
- 3620 IF RND(.)<0.035 THEN PEN=1
- 3630 GOSUB 9460
- 3640 IF RND(.)<0.05 THEN ICEPT=1
- 3650 IF RND(.)<0.70 THEN COMP=1
- 3660 IF COMP=1 THEN GAIN=INT(10*RND(.)+10*RND(.)*P)
- 3670 ON DP GOTO 3680,3690,3720,3740,3760,3790
- 3680 GOTO 3820
- 3690 COMP=0: IF RND(.)<0.35 THEN COMP=1
- 3700 IF COMP=1 THEN GAIN=INT(10*RND(.)*P)
- 3710 GOTO 3820
- 3720 IF RND(.)<0.5 AND COMP=1 THEN GAIN=GAIN+INT(12*RND(.))
- 3730 GOTO 3820
- 3740 IF RND(.)<0.5 AND COMP=1 THEN GAIN=GAIN+INT(20*RND(.))
- 3750 GOTO 3820
- 3760 IF RND(.)<0.4 AND COMP=1 THEN GAIN=GAIN-INT(10*RND(.))
- 3770 IF RND(.)<0.4 AND COMP=1 THEN GAIN=GAIN+INT(30*RND(.))
- 3780 GOTO 3820
- 3790 IF RND(.)<0.5 AND COMP=1 THEN GAIN=GAIN-INT(10*RND(.))
- 3800 IF RND(.)<0.5 AND COMP=1 THEN GAIN=GAIN+INT(40*RND(.))
- 3810 IF ICEPT=1 THEN GOSUB 6690: GOTO 5900
- 3820 IF COMP=1 THEN GOSUB 7490
- 3830 IF COMP<>1 THEN GOSUB 7500: GAIN=0
- 3840 IF YL+GAIN>99 THEN 7510
- 3850 IF GAIN<0 THEN GOSUB 6940
- 3860 IF GAIN=0 THEN GOSUB 6960
- 3870 IF GAIN>0 THEN GOSUB 6980
- 3880 IF PENALTY<>1 THEN 3900
- 3890 PRINT"...BUT THERE'S A PENALTY ON THE PLAY.": PENALTY=0: GOSUB 7010
- 3900 GOTO 5850
- 3910 REM 6. SHORT PASS
- 3920 COMP=0: HOLD=0: SACK=0: PI=0: PENALTY=0
- 3930 IF OP=9 THEN 3950
- 3940 PRINT:PRINT"SHORT PASS..."
- 3950 PRINT" ";D$(DP);"..."
- 3960 P=STR(QB,2)-STR(QB,4)
- 3970 IF RND(.)<0.05 THEN PEN=1
- 3980 IF RND(.)<0.04 THEN PI=1
- 3990 IF RND(.)<0.67 THEN COMP=1
- 4000 IF RND(.)<0.2 AND P<0 THEN COMP=0
- 4010 IF COMP=1 THEN GAIN=INT(15*RND(0))
- 4020 ON DP GOTO 4030,4050,4090,4120,4160,4210
- 4030 IF RND(.)<0.05 THEN HOLD=1: GOTO 4250
- 4040 GOTO 4250
- 4050 IF RND(.)<0.05 THEN HOLD=1
- 4060 IF RND(.)<0.05 THEN ICEPT=1
- 4070 IF RND(.)<0.2 AND COMP=1 THEN GAIN=GAIN+INT(25*INT(0))
- 4080 GOTO 4250
- 4090 IF RND(.)<0.3 THEN COMP=0: GAIN=0
- 4100 IF RND(.)<0.05 THEN HOLD=1
- 4110 GOTO 4250
- 4120 IF RND(.)<0.025 THEN HOLD=1
- 4130 IF COMP=0 AND RND(.)<0.5 THEN COMP=1
- 4140 IF COMP=1 THEN GAIN=INT(15*RND(0))
- 4150 GOTO 4250
- 4160 IF RND(.)<0.085 THEN HOLD=1
- 4170 IF RND(.)<0.2 THEN ICEPT=1
- 4180 IF RND(.)<0.2 THEN SACK=1
- 4190 IF RND(.)<0.2 AND COMP=1 THEN GAIN=GAIN+INT(25*RND(.))
- 4200 GOTO 4250
- 4210 IF RND(.)<0.085 THEN HOLD=1
- 4220 IF RND(.)<0.2 THEN ICEPT=1
- 4230 IF RND(.)<0.35 THEN SACK=1
- 4240 IF RND(.)<0.25 AND COMP=1 THEN GAIN=GAIN+INT(40*RND(.))
- 4250 GOSUB 9460
- 4260 IF SACK=1 THEN GOSUB 7440: GOTO 4320
- 4270 IF ICEPT=1 THEN GOSUB 6690: GOTO 5900
- 4280 IF COMP=1 THEN GOSUB 7490
- 4290 IF COMP<>1 THEN GOSUB 7500: GAIN=0
- 4300 IF PI=1 THEN GOSUB 6540: GOTO 5850
- 4310 IF YL+GAIN>99 THEN 7510
- 4320 IF GAIN<0 THEN GOSUB 6940
- 4330 IF GAIN=0 THEN GOSUB 6960
- 4340 IF GAIN>0 THEN GOSUB 6980
- 4350 IF HOLD=1 THEN GOSUB 7040: PENALTY=0
- 4360 IF PENALTY<>1 THEN 4380
- 4370 PRINT"...BUT THERE'S A PENALTY ON THE PLAY.": PENALTY=0: GOSUB 7010
- 4380 GOTO 5850
- 4390 REM 7. MEDIUM PASS
- 4400 COMP=0: HOLD=0: SACK=0: PI=0: PENALTY=0
- 4410 IF OP=9 THEN 4430
- 4420 PRINT:PRINT"MEDIUM PASS..."
- 4430 PRINT" ";D$(DP);"..."
- 4440 P=STR(QB,2)-STR(MLB,4)
- 4450 IF RND(.)<0.05 THEN PEN=1
- 4460 IF RND(.)<0.04 THEN PI=1
- 4470 IF RND(.)<0.5 THEN COMP=1
- 4480 IF RND(.)<0.2 AND P<0 THEN COMP=0
- 4490 IF COMP=1 THEN GAIN=INT(30*RND(.)+5)
- 4500 ON DP GOTO 4510,4530,4560,4590,4620,4670
- 4510 IF RND(0)<0.075 THEN HOLD=1
- 4520 GOTO 4710
- 4530 IF RND(.)<0.075 THEN HOLD=1
- 4540 IF RND(.)<0.5 AND COMP=1 THEN GAIN=GAIN+INT(25*RND(.))
- 4550 GOTO 4710
- 4560 IF RND(.)<0.3 THEN COMP=0
- 4570 IF RND(.)<0.075 THEN HOLD=1
- 4580 GOTO 4710
- 4590 IF RND(.)<0.3 THEN COMP=0
- 4600 IF RND(.)<0.035 THEN HOLD=1
- 4610 GOTO 4710
- 4620 IF RND(.)<0.11 THEN HOLD=1
- 4630 IF RND(.)<0.1 THEN ICEPT=1
- 4640 IF RND(.)<0.2 THEN SACK=1
- 4650 IF RND(.)<0.3 AND COMP=1 THEN GAIN=GAIN+INT(25*RND(.))
- 4660 GOTO 4710
- 4670 IF RND(.)<0.125 THEN HOLD=1
- 4680 IF RND(0)<0.1 THEN ICEPT=1
- 4690 IF RND(.)<0.3 THEN SACK=1
- 4700 IF RND(.)<0.3 AND COMP=1 THEN GAIN=GAIN+INT(25*RND(.))
- 4710 GOSUB 9460
- 4720 IF SACK=1 THEN GOSUB 7440: GOTO 4780
- 4730 IF ICEPT=1 THEN GOSUB 6690: GOTO 5900
- 4740 IF COMP=1 THEN GOSUB 7490
- 4750 IF COMP<>1 THEN GOSUB 7500: GAIN=0
- 4760 IF PI=1 THEN GOSUB 6540: GOTO 5850
- 4770 IF YL+GAIN>99 THEN 7510
- 4780 IF GAIN<0 THEN GOSUB 6940
- 4790 IF GAIN=0 THEN GOSUB 6960
- 4800 IF GAIN>0 THEN GOSUB 6980
- 4810 IF PENALTY<>1 AND HOLD<>1 THEN 4850
- 4820 PRINT"...BUT THERE'S A PENALTY ON THE PLAY."
- 4830 IF HOLD=1 THEN GOSUB 7040: PENALTY=0
- 4840 IF PENALTY=1 THEN GOSUB 7010
- 4850 GOTO 5850
- 4860 REM 8. LONG PASS
- 4870 COMP=0: HOLD=0: SACK=0: PI=0: PENALTY=0
- 4880 PRINT:PRINT"LONG PASS..."
- 4890 PRINT" ";D$(DP);"..."
- 4900 IF RND(.)<0.05 THEN PENALTY=1
- 4910 IF RND(.)<0.05 THEN PI=1
- 4920 IF RND(.)<0.33 THEN COMP=1
- 4930 IF COMP=1 THEN GAIN=15+INT(45*RND(.))
- 4940 ON DP GOTO 4950,4970,5000,5030,5070,5120
- 4950 IF RND(.)<0.1 THEN HOLD=1
- 4960 GOTO 5160
- 4970 IF RND(.)<0.1 THEN HOLD=1
- 4980 IF RND(.)<0.3 AND COMP=1 THEN GAIN=GAIN+INT(25*RND(.))
- 4990 GOTO 5160
- 5000 IF RND(.)<0.3 THEN COMP=0
- 5010 IF RND(.)<0.05 THEN HOLD=1
- 5020 GOTO 5160
- 5030 IF RND(.)<0.075 THEN HOLD=1
- 5040 IF RND(.)<0.5 THEN COMP=0
- 5050 IF COMP=1 AND RND(.)<0.5 THEN GAIN=GAIN+INT(25*RND(.))
- 5060 GOTO 5160
- 5070 IF RND(.)<0.1 THEN HOLD=1
- 5080 IF RND(.)<0.1 THEN ICEPT=1
- 5090 IF RND(.)<0.2 THEN SACK=1
- 5100 IF RND(.)<0.2 AND COMP=1 THEN GAIN=GAIN+INT(25*RND(.))
- 5110 GOTO 5160
- 5120 IF RND(.)<0.1 THEN HOLD=1
- 5130 IF RND(.)<0.1 THEN ICEPT=1
- 5140 IF RND(.)<0.3 THEN SACK=1
- 5150 IF RND(.)<0.3 AND COMP=1 THEN GAIN=GAIN+INT(25*RND(.))
- 5160 GOSUB 9460
- 5170 IF SACK=1 THEN GOSUB 7440: GOTO 5240
- 5180 IF PI=1 THEN GOSUB 6540: GOTO 5850
- 5190 IF ICEPT=1 THEN GOSUB 6690: GOTO 5900
- 5200 IF SACK=1 THEN 5240
- 5210 IF COMP=1 THEN GOSUB 7490
- 5220 IF COMP<>1 THEN GOSUB 7500: GAIN=0
- 5230 IF YL+GAIN>99 THEN 7510
- 5240 IF GAIN<0 THEN GOSUB 6940
- 5250 IF GAIN=0 THEN GOSUB 6960
- 5260 IF GAIN>0 THEN GOSUB 6980
- 5270 IF PENALTY<>1 OR HOLD<>1 THEN 5310
- 5280 PRINT"...BUT THERE'S A PENALTY ON THE PLAY."
- 5290 IF HOLD=1 THEN GOSUB 7040: PENALTY=0
- 5300 IF PENALTY=1 THEN 7010
- 5310 GOTO 5850
- 5320 REM 9. SIDELINE PASS
- 5330 COMP=0: HOLD=0: SACK=0: PI=0: PENALTY=0
- 5340 PRINT:PRINT"SIDELINE PASS..."
- 5350 IF RND(0)<0.5 THEN 3910
- 5360 GOTO 4390
- 5370 REM 10. PUNT
- 5380 PP=10*RND(1)+3*STR(QB,5): T=T+0.2
- 5390 PNT=35+INT(PP)
- 5400 P4(QB)=P4(QB)+1:QQ(QB)=QQ(QB)+PNT: P5(QB)=INT(10*QQ(QB)/P4(QB))/10
- 5410 YL=YL+PNT: YL=100-YL: YFIRST=10
- 5420 Z=QB: QB=MLB: MLB=Z: DOWN=1
- 5430 PRINT:PRINTPNT;" YARD PUNT..."
- 5440 IF YL<=0 THEN 5530
- 5450 IF RND(.)<0.1 THEN 5480
- 5460 PR=10*RND(.)+3*STR(QB,5)
- 5470 PR=INT(PR): GOTO 5490
- 5480 PR=INT(40*RND(.)*STR(QB,5))
- 5490 IF PR<0 THEN PR=0
- 5500 IF PR=0 THEN PRINT"FAIR CATCH ";N$(QB): GOTO 5540
- 5510 YL=YL+PR
- 5520 PRINTPR;" YARD RETURN.": GOTO 5540
- 5530 PRINT"TOUCHBACK...": YL=20
- 5540 IF YL>99 THEN 7510
- 5550 PRINT: PRINT"FIRST DOWN ";N$(QB);". ";YFIRST;" YARDS TO GO."
- 5560 GOTO 6100
- 5570 REM 11. FIELD GOAL
- 5580 FGL=117-YL: GD=0: BL=0: S=STR(QB,5)-STR(MLB,5): T=T+0.1
- 5590 PRINTFGL;" YARD FIELD GOAL ATTEMPT...": GOSUB 6270
- 5600 IF FGL>50+10*S THEN 5800
- 5610 IF FGL>25+10*S THEN 5630
- 5620 IF RND(0)<0.9-0.25*FGL/35 THEN GD=1: GOTO 5640
- 5630 IF RND(0)<0.65-0.65*(FGL-35)/25 THEN GD=1
- 5640 IF GD<>1 THEN 5800
- 5650 S=STR(QB,5)-STR(MLB,5): IF S<0 AND RND(0)<0.1 THEN BL=1
- 5660 IF BL<>1 THEN 5690
- 5670 PRINT"FIELD GOAL ATTEMPT IS BLOCKED!": Z=QB: QB=MLB: MLB=Z: YL=100-YL
- 5680 R=INT(30*RND(0)):YL=YL+R:PRINTR;" YARD RETURN.":DOWN=1:YFIRST=10:GOTO5850
- 5690 PRINT"[147]"
- 5700 PRINTTAB(10);"[207][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][208]"
- 5710 PRINTTAB(10);"[165] [167]"
- 5720 PRINTTAB(10);"[165] [167]"
- 5730 PRINTTAB(10);"[165] IT'S GOOD!! [167]"
- 5740 PRINTTAB(10);"[165] [167]"
- 5750 PRINTTAB(10);"[165] [167]"
- 5760 PRINTTAB(10);"[204][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][186]"
- 5770 GOSUB 6280: PRINT"[147]"
- 5780 SC(QB)=SC(QB)+3: GOSUB 8770
- 5790 Z=QB: QB=MLB: MLB=Z: GOTO 1270
- 5800 PRINT:PRINT"FIELD GOAL ATTEMPT IS NO GOOD..."
- 5810 YL=100-YL: IF YL<20 THEN YL=20: Y=20
- 5820 Z=QB: QB=MLB: MLB=Z: A=QB: IF YL>50 THEN A=MLB
- 5830 GOTO 1760
- 5840 REM PLAY GAME
- 5850 YL=YL+GAIN: IF PEN=1 OR PI=1 OR HOLD=1 THEN 5900
- 5860 PEN=0: IF OP<5 THEN R1(QB)=R1(QB)+GAIN: GOTO 5890
- 5870 IF OP<10 THEN P1(QB)=P1(QB)+GAIN: PA(QB)=PA(QB)+1
- 5880 IF COMP=1 THEN PC(QB)=PC(QB)+1
- 5890 NY1(QB)=NY(QB)+GAIN
- 5900 IF YL>99 THEN 7510
- 5910 IF YL<=0 THEN 6340
- 5920 HT=0
- 5930 GOSUB 8080
- 5940 IF HT=1 THEN 1270
- 5950 YFIRST=YFIRST-GAIN
- 5960 IF YFIRST>0 THEN 5980
- 5970 DOWN=0: YFIRST=10: F1(QB)=F1(QB)+1
- 5980 DOWN=DOWN+1
- 5990 IF DOWN<5 THEN 6020
- 6000 Z=QB: QB=MLB: MLB=Z: YFIRST=10: YL=100-YL: DOWN=1
- 6010 PRINT:PRINT"BALL GOES OVER ON DOWNS..."
- 6020 ON DOWN GOTO 6030,6040,6050,6060
- 6030 D$="FIRST": GOTO 6070
- 6040 D$="SECOND": GOTO 6070
- 6050 D$="THIRD": GOTO 6070
- 6060 D$="FOURTH"
- 6070 IF YL+YFIRST<100 THEN 6090
- 6080 PRINT:PRINTD$;" DOWN, ";N$(QB);". GOAL TO GO.": GOTO 6100
- 6090 PRINT:PRINTD$;" DOWN, ";N$(QB);". "; YFIRST;" YARDS TO GO."
- 6100 IF YL<50 THEN Y=YL: NN=QB: GOTO 6120
- 6110 Y=100-YL: NN=MLB:
- 6120 PRINT"BALL IS ON ";N$(NN);" ";Y;" YARDLINE."
- 6130 TR=15*Q-T:SR=INT((TR-INT(TR))*60): IFQ<>2ORT<28 THEN 6150
- 6140 PRINTINT(TR);"MINUTES AND";SR;"SECONDS":PRINT"REMAINING IN HALF."
- 6150 IF Q<>4 OR T<58 THEN 6170
- 6160 PRINTINT(TR);"MINUTES AND";SR;"SECONDS":PRINT"REMAINING IN GAME."
- 6170 GAIN=0: GOTO 1800
- 6180 REM TITLE
- 6190 PRINT"[147]":PRINT""
- 6200 PRINT" [169] [223][169] [223] [223][169] [223] "
- 6210 PRINT" "
- 6220 PRINT" "
- 6230 PRINT" "
- 6240 PRINT" [146][223] [146][169] [223] [146][169] [146][169] "
- 6250 PRINT"[157][157][157][157][157]L.S."
- 6260 GOSUB6280: PRINT"[147]": RETURN
- 6270 FOR DELAY=1 TO 2500: NEXT: RETURN
- 6280 FOR DELAY=1 TO 5000: NEXT: RETURN
- 6290 FOR DELAY=1 TO 1500: NEXT: RETURN
- 6300 PRINT"< HIT ANY KEY TO CONTINUE >"
- 6310 GET X$
- 6320 IF X$="" THEN 6310: WAIT
- 6330 RETURN
- 6340 REM SAFETY
- 6350 GOSUB 6290: PRINT"[147]"
- 6360 PRINTTAB(13);"[207][163][163][163][163][163][163][163][163][163][163][163][163][208]"
- 6370 PRINTTAB(13);"[165] [167]"
- 6380 PRINTTAB(13);"[165] SAFETY!! [167]"
- 6390 PRINTTAB(13);"[165] [167]"
- 6400 PRINTTAB(13);"[204][164][164][164][164][164][164][164][164][164][164][164][164][186]"
- 6410 GOSUB 6280: PRINT"[147]"
- 6420 SC(MLB)=SC(MLB)+2: GOSUB 8770
- 6430 Z=QB: QB=MLB: MLB=Z
- 6440 PRINT" *** FREE KICK ***": GOTO 1350
- 6450 REM FUMBLE
- 6460 K=INT(2*RND(.))+1: PEN=0: FUMB=0
- 6470 PRINT"FUMBLE ON THE PLAY...": F3(QB)=F3(QB)+1: GOSUB 6270
- 6480 PRINT"RECOVERED BY ";N$(K);"."
- 6490 IF K=QB THEN 6530
- 6500 Z=QB: QB=MLB: MLB=Z: YFIRST=10: DOWN=0: YL=YL+GAIN: YL=100-YL: GAIN=0
- 6510 IF YL<1 THENPRINT"TOUCHBACK...": YL=20
- 6520 F2(MLB)=F2(MLB)+1
- 6530 RETURN
- 6540 REM PASS INTERFERENCE
- 6550 K=5
- 6560 PL=INT((OP-5)*12*RND(.)+5*RND(.)): IF PL=15 THEN PL=16
- 6570 IF YL+PL>110 THEN PL=110-YL
- 6580 IF PL=5 THEN PL=6
- 6590 IF PL=0 THEN PL=2
- 6600 PRINTPL;" YARD PASS ATTEMPT..."
- 6610 PRINT"PASS INTERFERENCE ON ";N$(MLB);".":PRINT
- 6620 GOSUB 7120
- 6630 IF P$="Y" THEN 6660
- 6640 GAIN=0: IF COMP=1 THEN GAIN=PL
- 6650 GOTO 6680
- 6660 IF OYL+PL>100 AND LEFT$(P$,1)<>"N" THEN YL=99
- 6670 DOWN=0: YFIRST=10
- 6680 RETURN
- 6690 REM INTERCEPTED
- 6700 I1(MLB)=I1(MLB)+1
- 6710 PL=INT((OP-5)*20*RND(.))+INT(5*RND(.)): ICEPT=0
- 6720 IF PL+YL>110 THEN PL=110-YL
- 6730 PRINTPL;" YARD PASS INTERCEPTED!!"
- 6740 Z=QB: QB=MLB: MLB=Z: YL=100-YL
- 6750 R=INT(20*RND(.))
- 6760 PRINTR;" YARD RETURN."
- 6770 YL=YL-PL+R: YFIRST=10: DOWN=0: GAIN=0: COMP=0
- 6780 IF YL<1 THEN PRINT"TOUCHBACK...":PRINT: YL=20
- 6790 RETURN
- 6800 REM TIMEOUT
- 6810 IF OP=13 THEN T2=QB
- 6820 IF DP=7 THEN T2=MLB
- 6830 PRINT"TIMEOUT ";N$(T2);"..."
- 6840 IF T1(T2)>0 THEN 6890
- 6850 T1(T2)=0
- 6860 PRINTN$(T2);" HAS NO TIMEOUTS LEFT!!"
- 6870 PRINT"NOW 80,000 FANS KNOW YOU CAN'T COUNT!!":PRINT
- 6880 GOTO 1800
- 6890 T=TLAST+0.1: T1(T2)=T1(T2)-1: TP(QB)=TP(QB)-DM+0.1
- 6900 IF T2=2 THEN 6920
- 6910 GOSUB 6300
- 6920 GOTO 1800
- 6930 REM GAIN/LOSS OUTPUT
- 6940 IF YL+GAIN<1 THEN GAIN=-YL
- 6950 PRINTABS(GAIN);" YARD LOSS.": RETURN
- 6960 PRINT"NO GAIN.": RETURN
- 6970 PRINT"NO GAIN.": RETURN
- 6980 IF YL+GAIN>99 THEN GAIN=100-YL
- 6990 PRINTGAIN;" YARD GAIN.": RETURN
- 7000 PRINTABS(GAIN);" YARD LOSS."
- 7010 REM PENALTY
- 7020 K=INT(4*RND(.))+1
- 7030 ON K GOTO 7040,7060,7080,7100
- 7040 PRINT"HOLDING PENALTY ON ";N$(QB);".": K=1
- 7050 PL=-10: GOTO 7120
- 7060 PRINT"ILLEGAL PROCEDURE ON ";N$(QB);"."
- 7070 PL=-5: GOTO 7120
- 7080 PRINT"ROUGH PLAY ON ";N$(MLB);"."
- 7090 PL=15: GOTO 7120
- 7100 PRINT"OFFSIDE ON ";N$(MLB);"."
- 7110 PL=5
- 7120 T=T+0.1: IF PL<0 THEN Z=MLB
- 7130 IF PL>0 THEN Z=QB
- 7140 OYL=YL: IF Z=1 THEN 7300
- 7150 ON K GOTO 7160,7200,7240,7260,7280
- 7160 IF YL+GAIN>99 THEN P$="Y": GOTO 7320
- 7170 IF YL+GAIN<1 THEN P$="N": GOTO 7320
- 7180 IF (GAIN<YFIRST AND DOWN=3)OR(GAIN<YFIRST AND DOWN=4)THEN P$="N": GOTO 7320
- 7190 P$="Y": GOTO 7320
- 7200 IF YL+GAIN>99 THEN P$="Y": GOTO 7320
- 7210 IF GAIN<YFIRST AND DOWN=4 THEN P$="N": GOTO 7320
- 7220 IF ((GAIN<YFIRST AND DOWN=3)OR(GAIN<0)) THEN P$="N":GOTO 7320
- 7230 P$="Y": GOTO 7320
- 7240 IF YL+GAIN<100 THEN P$="Y": GOTO 7320
- 7250 P$="N": GOTO 7320
- 7260 IF GAIN>YFIRST AND GAIN>PL OR YL+GAIN>99 THEN P$="N": GOTO 7320
- 7270 P$="Y": GOTO 7320
- 7280 IF GAIN>PL AND GAIN>=YFIRST THEN P$="N"
- 7290 P$="Y": GOTO 7320
- 7300 PRINT"DOES ";N$(Z);" ACCEPT PENALTY";
- 7310 INPUT P$
- 7320 IF LEFT$(P$,1)="N" THEN 7400
- 7330 PRINT"PENALTY ACCEPTED...": IF PL=15 THEN 7350
- 7340 DOWN=DOWN-1: YFIRST=YFIRST-PL: YL=YL+PL: GAIN=0: GOTO 7370
- 7350 IF YL+GAIN+PL>99 THEN YL=YL+GAIN+INT((100-YL-GAIN)/2)
- 7360 GAIN=GAIN+PL: YL=YL+GAIN: DOWN=0: YFIRST=10: GAIN=0
- 7370 IF Z=MLB THEN ZZ=QB
- 7380 IF Z=QB THEN ZZ=MLB
- 7390 P2(ZZ)=P2(ZZ)+1: P3(ZZ)=P3(ZZ)+ABS(PL): GOTO 7410
- 7400 PRINT"PENALTY DECLINED...": GOTO 5850
- 7410 IF YL<1 THEN YL=INT(OYL/2): YFIRST=YFIRST+OYL-YL
- 7420 IF YL>99 THEN YL=OYL+INT((100-OYL)/2): YFIRST=YFIRST+OYL-YL
- 7430 RETURN
- 7440 REM SACK
- 7450 LOSS=INT(20*RND(0))+1: SACK=0
- 7460 PRINT"QUARTERBACK IS SACKED FOR A ";LOSS
- 7470 PRINT"YARD LOSS!"
- 7480 GAIN=-LOSS: GOTO 5850
- 7490 PRINT"PASS COMPLETE...": RETURN
- 7500 PRINT"PASS INCOMPLETE...": RETURN
- 7510 GOSUB 6290: PRINT"[147]":PRINT""
- 7520 PRINTTAB(9);"[207][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][208]"
- 7530 PRINTTAB(9);"[180] [167]"
- 7540 PRINTTAB(9);"[180] [167]"
- 7550 PRINTTAB(9);"[180] TOUCHDOWN!!! [167]"
- 7560 PRINTTAB(9);"[180] [167]"
- 7570 PRINTTAB(9);"[180] [167]"
- 7580 PRINTTAB(9);"[204][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][186]"
- 7590 SC(QB)=SC(QB)+7
- 7600 Z=QB: QB=MLB: MLB=Z
- 7610 GOSUB6280: GOSUB 8770: GOTO 1270
- 7620 REM 12. STATUS
- 7630 PRINT"[147]STATUS[146]":PRINT
- 7640 IF E=1 THEN Q=4
- 7650 PRINT"QUARTER: ";Q:PRINT:PRINT
- 7660 PRINT"SCORE:"
- 7670 FOR I=1 TO 2
- 7680 PRINT N$(I);TAB(14); SC(I)
- 7690 NEXT I
- 7700 PRINT:PRINT
- 7710 TT=(15*Q)-T
- 7720 SEC=INT((TT-INT(TT))*60)
- 7730 IF E=1 THEN TT=0: SEC=0
- 7740 PRINT"TIME REMAINING IN QUARTER:"
- 7750 PRINTINT(TT);" MINUTES AND ";SEC;" SECONDS"
- 7760 PRINT:PRINT
- 7770 PRINT"TIMEOUTS REMAINING:"
- 7780 FOR I=1 TO 2
- 7790 PRINTN$(I);TAB(14);T1(I): NEXT I: IF HT=1 THEN 7860
- 7800 IF E=1 THEN 7860
- 7810 DN=DOWN: IF DOWN=0 THEN DN=1
- 7820 PRINT:PRINT:PRINT"DOWN: ";DN
- 7830 PRINT"YARDS TO GO ";YFIRST
- 7840 QK=QB: IF YL>50 THEN QK=MLB: Y=100-YL
- 7850 PRINT"BALL ON: ";N$(QK);Y;"YARD LINE": GOSUB 6280
- 7860 PRINT"DO YOU WANT TO SEE GAME STATISTICS";
- 7870 INPUT S$
- 7880 IF LEFT$(S$,1)<>"N" THEN GOSUB 9110
- 7890 GOSUB 6300: IF T=15 OR T=30 OR T=45 OR T=60 THEN RETURN
- 7900 IF DP=8 THEN RETURN
- 7910 GOTO 1800
- 7920 PRINT"[147]ARE YOU SURE YOU WANT TO QUIT,"
- 7930 PRINT"YOU COWARD";
- 7940 INPUT Q$
- 7950 IF LEFT$(Q$,1)="Y" THEN 7970
- 7960 GOTO 1800
- 7970 PRINT"[147]"
- 7980 PRINTTAB(7);"[207][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][208]"
- 7990 PRINTTAB(7);"[165] [167]"
- 8000 PRINTTAB(7);"[165] [167]"
- 8010 PRINTTAB(7);"[165] *** CHICKEN *** [167]"
- 8020 PRINTTAB(7);"[165] [167]"
- 8030 PRINTTAB(7);"[165] [167]"
- 8040 PRINTTAB(7);"[204][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][186]"
- 8050 GOSUB 6280
- 8060 PRINT"[147]"
- 8070 GOTO 9080
- 8080 REM TIME COUNT
- 8090 IF OP=1 OR OP=2 THEN 8150
- 8100 IF OP=3 AND RND(.)<0.5 THEN 8150
- 8110 IF OP=4 AND RND(.)<0.3 THEN 8150
- 8120 IF COMP=0 THEN 8170
- 8130 IF OP=9 AND RND(.)<0.8 THEN 8170
- 8140 IF RND(.)<0.3 THEN 8170
- 8150 TLAST=T
- 8160 T=T+0.5: TP(QB)=TP(QB)+0.5: DM=0.5: GOTO 8190
- 8170 TLAST=T
- 8180 T=T+0.15: TP(QB)=TP(QB)+0.15: DM=0.15: IF OT=1 THEN RETURN
- 8190 IF T>=58 AND WW=0 THEN GOSUB 8590
- 8200 IF T>=28 AND W=0 THEN GOSUB 8590
- 8210 IF T<=15*Q THEN 8580
- 8220 Q=Q+1
- 8230 ON Q-1 GOTO 8240,8320,8430,8500
- 8240 GOSUB 6270
- 8250 PRINT"[147]"
- 8260 PRINTTAB(7);"[207][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][208]"
- 8270 PRINTTAB(7);"[165] [167]"
- 8280 PRINTTAB(7);"[165] END OF FIRST QUARTER [167]"
- 8290 PRINTTAB(7);"[165] [167]"
- 8300 PRINTTAB(7);"[204][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][186]": GOSUB 8700
- 8310 GOSUB 6280: T=15: GOSUB 8830: GOSUB 7620: GOTO8580
- 8320 GOSUB 6270: PRINT"[147]"
- 8330 PRINTTAB(7);"[207][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][208]"
- 8340 PRINTTAB(7);"[165] [167]"
- 8350 PRINTTAB(7);"[165] END OF FIRST HALF [167]"
- 8360 PRINTTAB(7);"[165] [167]"
- 8370 PRINTTAB(7);"[204][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][186]"
- 8380 GOSUB 6280: T=30: GOSUB 8830: HT=1
- 8390 QB=SX: T1(1)=3: T1(2)=3: GOSUB 7620
- 8400 IF QB<>2 THEN MLB=2: GOTO 8420
- 8410 IF QB<>1 THEN MLB=1
- 8420 GOSUB 9290: RETURN
- 8430 GOSUB 6270: PRINT"[147]"
- 8440 PRINTTAB(7);"[207][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][208]"
- 8450 PRINTTAB(7);"[165] [167]"
- 8460 PRINTTAB(7);"[165] END OF THIRD QUARTER [167]"
- 8470 PRINTTAB(7);"[165] [167]"
- 8480 PRINTTAB(7);"[204][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][186]"
- 8490 GOSUB 6280: T=45: GOSUB 8830: GOSUB 7620: GOTO8580
- 8500 GOSUB 6270
- 8510 PRINT"[147]"
- 8520 PRINTTAB(7);"[207][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][208]"
- 8530 PRINTTAB(7);"[165] [167]"
- 8540 PRINTTAB(7);"[165] END OF GAME!!! [167]"
- 8550 PRINTTAB(7);"[165] [167]"
- 8560 PRINTTAB(7);"[204][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][186]"
- 8570 GOSUB 6280:PRINT"[147]":T=60:GOSUB8830:E=1:GOSUB 7620: GOTO 8890
- 8580 RETURN
- 8590 REM 2 MINUTE WARNING
- 8600 IF T<30 THEN W=1
- 8610 IF T>30 THEN WW=1
- 8620 GOSUB 6270: PRINT"[147]"
- 8630 PRINTTAB(8);"[207][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][208]"
- 8640 PRINTTAB(8);"[165] [167]"
- 8650 PRINTTAB(8);"[165] TWO MINUTE WARNING [167]"
- 8660 PRINTTAB(8);"[165] [167]"
- 8670 PRINTTAB(8);"[204][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][186]"
- 8680 GOSUB 6280: PRINT"[147]"
- 8690 RETURN
- 8700 REM COMPUTER TEAM ADJUSTMENTS BETWEEN FIRST AND SECOND QUARTERS
- 8710 IF SC(1)-SC(2)<=0 THEN 8760
- 8720 STR(2,3)=STR(1,1): STR(2,4)=STR(1,2)
- 8730 STR(2,1)=5*RND(.)+WF: STR(2,2)=5*RND(.)+WF: STR(2,5)=4*RND(.)+WF
- 8740 FOR K=1 TO 5
- 8750 IF STR(2,K)<1 THEN STR(2,K)=1: NEXT K
- 8760 RETURN
- 8770 REM DISPLAY SCORE
- 8780 PRINT"[147]";TAB(8);N$(1);TAB(24);SC(1):PRINT
- 8790 PRINTTAB(8);N$(2);TAB(24);SC(2)
- 8800 GOSUB 6280
- 8810 PRINT"[147]"
- 8820 RETURN
- 8830 REM TIME OF POSSESSION CORRECTION
- 8840 C=T-TP(1)-TP(2)
- 8850 A=TP(1)/(TP(1)+TP(2)): B=1-A
- 8860 TP(1)=TP(1)+A*C
- 8870 TP(2)=TP(2)+B*C
- 8880 RETURN
- 8890 PRINT"[147]": OT=0
- 8900 IF SC(1)-SC(2)>0 THEN W=1: GOTO 8930
- 8910 IF SC(1)-SC(2)<0 THEN W=2: GOTO 8930
- 8920 GOTO 9360
- 8930 PRINT"*** ";N$(W);" WON!! ***"
- 8940 IF L$="W" THEN AZ=1
- 8950 IF L$="E" THEN AZ=2
- 8960 IF L$="M" THEN AZ=3
- 8970 IF L$="H" THEN AZ=4
- 8980 IF W=2 THEN 9080
- 8990 ON AZ GOTO 9000,9020,9040,9060
- 9000 PRINT"NOT BAD FOR A WIMP!! REAL HEROS USE"
- 9010 PRINT"THE 'MEDIUM' AND 'HARD' LEVELS!!": END
- 9020 PRINT"BIG DEAL! SO YOU WON! REAL HEROS USE"
- 9030 PRINT"THE 'MEDIUM' AND 'HARD' LEVELS!!": END
- 9040 PRINT"NOT BAD FOR AN AMATEUR! LET'S SEE"
- 9050 PRINT"YOU DO IT AGAIN ON THE HARD LEVEL!!": END
- 9060 PRINT"YOU'RE A REAL HERO (AND LUCKY TOO)!"
- 9070 PRINT"BET YOU CAN'T DO IT AGAIN!": END
- 9080 PRINT"YOU COULDN'T EVEN BEAT THE COMPUTER!"
- 9090 PRINT"HA HA HA HA HA HA HA HA HA HA HA!!!"
- 9100 END
- 9110 REM STATISTICS
- 9120 PRINT"[147]STATISTICS:[146]":PRINT
- 9130 PRINT"STATISIC";TAB(15);N$(1);TAB(29);N$(2):PRINT
- 9140 PRINT"FIRST DOWNS";TAB(15);F1(1);TAB(29);F1(2)
- 9150 PRINT"RUSHING";TAB(15);R1(1);TAB(29);R1(2)
- 9160 PRINT"PASSING";TAB(15);P1(1);TAB(29);P1(2)
- 9170 PRINT"NET YARDS";TAB(15);NY1(1);TAB(29);NY1(2)
- 9180 PRINT"PASSES";TAB(15);PC(1);"/";PA(1);TAB(29);PC(2);"/";PA(2)
- 9190 PRINT"INTERCEPTED BY";TAB(15);I1(1);TAB(29);I1(2)
- 9200 PRINT"PUNTS";TAB(15);P4(1);"-";P5(1);
- 9210 PRINTTAB(29);P4(2);"-";P5(2)
- 9220 PRINT"FUMBLES/LOST";TAB(15);F3(1);"/";F2(1);TAB(29);F3(2);"/";F2(2)
- 9230 PRINT"PENALTIES/";TAB(15);P2(1);"-";P3(1);TAB(29);P2(2);"-";P3(2)
- 9240 PRINT" YARDS"
- 9250 PRINT"TIME OF";TAB(15);INT((TP(1)+0.05)*10)/10;
- 9260 PRINTTAB(29);INT((TP(2)+0.05)*10)/10
- 9270 PRINT"POSSESSION"
- 9280 RETURN
- 9290 REM COMPUTER TEAM MAKES ADJUSTMENTS AT HALFTIME
- 9300 IF SC(1)-SC(2)<0 THEN 9350
- 9310 FOR I=1 TO 5
- 9320 STR(2,I)=3.5+WF
- 9330 IF STR(2,I)<STR(1,I) THEN STR(2,I)=STR(1,I)
- 9340 NEXT I
- 9350 RETURN
- 9360 REM OVERTIME
- 9370 PRINT"[147]"
- 9380 PRINTTAB(13);"[207][163][163][163][163][163][163][163][163][163][163][163][163][208]"
- 9390 PRINTTAB(13);"[165] [167]"
- 9400 PRINTTAB(13);"[165] OVERTIME [167]"
- 9410 PRINTTAB(13);"[165] [167]"
- 9420 PRINTTAB(13);"[204][164][164][164][164][164][164][164][164][164][164][164][164][186]"
- 9430 GOSUB 6270: OT=1: Q=5: E=0: T1(1)=3: T1(2)=3
- 9440 PRINT"[147]"
- 9450 GOTO 1050
- 9460 REM HALF/GAME CANNOT END ON PENALTY
- 9470 IF Q=2 AND T>29.5 THEN PENALTY=0: PI=0: HOLD=0
- 9480 IF Q=4 AND T>59.5 THEN PENALTY=0: PI=0: HOLD=0
- 9490 RETURN
- 9500 REM COMPUTER OFFENSIVE STRATEGY
- 9510 R=STR(2,1)-STR(1,3): B=0
- 9520 P=STR(2,2)-STR(1,4)
- 9530 IF OT=1 THEN 9570
- 9540 IF DOWN=4 AND T<58 THEN 9570
- 9550 IF Q=2 AND T>27 AND SC(1)-SC(2)>0 THEN 9770
- 9560 IF Q=4 AND T>57 AND SC(1)-SC(2)>0 THEN 9770
- 9570 IF (R>0 AND P>0) OR (R<0 AND P<0) OR (R=0 AND P=0) THEN B=1
- 9580 ON DOWN GOTO 9590,9590,9660,9710
- 9590 IF YFIRST<3 THEN GOSUB 10020: GOTO 1840
- 9600 IF B<>1 THEN 9620
- 9610 IF RND(.)<0.5 THEN R=1: GOTO 9620
- 9620 IF R>0 THEN GOSUB 9840: GOTO 9640
- 9630 GOSUB 9890
- 9640 GOTO 1840
- 9650 REM COMPUTER OFFENCE - THIRD DOWN
- 9660 IF YFIRST>9 THEN GOSUB 9990: GOTO 9700
- 9670 IF YFIRST>3 THEN GOSUB 9890: GOTO 9700
- 9680 IF R>0 OR YFIRST=1 THEN GOSUB 10020: GOTO 9700
- 9690 GOSUB 9960
- 9700 GOTO 1840
- 9710 REM COMPUTER OFFENCE - FOURTH DOWN
- 9720 IF YL>70-2*STR(QB,5) THEN OP=11: GOTO 1840
- 9730 IF YFIRST>1 THEN OP=10: GOTO 1840
- 9740 IF YL<50 THEN OP=10: GOTO 1840
- 9750 OP=1: GOTO 1840
- 9760 REM 2 MINUTE OFFENCE
- 9770 IF T-TLAST=0.5 AND T1(2)>0 THEN OP=13: GOTO 1840
- 9780 IF Q=2 AND T>29.5 AND YL>=65 THEN OP=11: GOTO 1840
- 9790 IF SC(1)-SC(2)<4 AND T>59.5 AND YL>55 THEN OP=11: GOTO 1840
- 9800 IF Q=2 AND DOWN=4 THEN 9710
- 9810 IF (DOWN=1 OR DOWN=2) AND RND(.)<0.2 THEN OP=8: GOTO 1840
- 9820 OP=9: GOTO 1840
- 9830 REM CHOOSE OFFENSIVE PLAY (MAINLY RUN)
- 9840 IF RND(.)<0.7 THEN GOSUB 9930: GOTO 9870
- 9850 IF RND(.)<0.8 THEN GOSUB 9960: GOTO 9870
- 9860 GOSUB 9990
- 9870 RETURN
- 9880 REM CHOOSE OFFENSIVE PLAY (MAINLY SHORT PASS)
- 9890 IF RND(.)<0.7 THEN GOSUB 9960: GOTO 9920
- 9900 IF RND(.)<0.8 THEN GOSUB 9930: GOTO 9920
- 9910 GOSUB 9990
- 9920 RETURN
- 9930 REM CHOOSE RUNNING PLAY
- 9940 OP=INT(3*RND(.))+1
- 9950 RETURN
- 9960 REM CHOOSE SHORT PASS PLAY
- 9970 OP=INT(3*RND(.))+5
- 9980 RETURN
- 9990 REM CHOOSE LONG PASS PLAY
- 10000 OP=INT(2*RND(.))+7
- 10010 RETURN
- 10020 REM SHORT YARDAGE OFFENCE
- 10030 IF RND(.)<0.8 THEN OP=1: GOTO 10050
- 10040 OP=8
- 10050 RETURN
- 10060 REM COMPUTER DEFENCE
- 10070 SS=SC(1)-SC(2): IF OT=1 THEN 10100
- 10080 IF Q=2 AND T>28 THEN 10510
- 10090 IF Q=4 AND T>58 THEN 10510
- 10100 R=STR(1,1)-STR(2,3): B=0
- 10110 P=STR(1,2)-STR(2,4)
- 10120 IF (R>0 AND P>0) OR (R<0 AND P<0) OR (R=0 AND P=0) THEN B=1
- 10130 ON DOWN GOTO 10150,10190,10240,10280
- 10140 REM FIRST DOWN DEFENCE
- 10150 IF B=1 THEN GOSUB 10370: GOTO 10180
- 10160 IF R>0 THEN GOSUB 10340: GOTO 10180
- 10170 GOSUB 10310
- 10180 GOTO 2190
- 10190 REM SECOND DOWN DEFENCE
- 10200 IF YFIRST>9 THEN GOSUB 10310: GOTO 10230
- 10210 IF YFIRST>3 THEN GOSUB 10370: GOTO 10230
- 10220 GOSUB 10340
- 10230 GOTO 2190
- 10240 REM THIRD DOWN DEFENCE
- 10250 IF YFIRST>4 THEN GOSUB 10430: GOTO 10270
- 10260 GOSUB 10470
- 10270 GOTO 2190
- 10280 REM FOURTH DOWN DEFENCE
- 10290 IF YFIRST>4 THEN GOSUB 10430: GOTO 2210
- 10300 GOSUB 10470: GOTO 2190
- 10310 REM STOP PASSING TEAM
- 10320 IF RND(.)<0.5 THEN GOSUB 10400: RETURN
- 10330 GOSUB 10430: RETURN
- 10340 REM STOP RUNNING TEAM
- 10350 IF RND(.)<0.5 THEN GOSUB 10400: RETURN
- 10360 GOSUB 10470: RETURN
- 10370 REM STOP PASSING/RUNNING TEAM
- 10380 IF RND(.)<0.5 THEN GOSUB 10340: RETURN
- 10390 GOSUB 10310: RETURN
- 10400 REM STANDARD DEFENCE
- 10410 IF RND(.)<0.8 THEN DP=1: RETURN
- 10420 DP=5: RETURN
- 10430 REM PASS DEFENCE
- 10440 IF RND(.)<0.7 THEN DP=3: RETURN
- 10450 IF RND(.)<0.5 THEN DP=5: RETURN
- 10460 DP=6: RETURN
- 10470 REM RUN DEFENCE
- 10480 IF RND(.)<0.8 THEN DP=2: RETURN
- 10490 IF RND(.)<0.5 THEN DP=5: RETURN
- 10500 DP=6: RETURN
- 10510 REM 2 MINUTE COMPUTER DEFENCE
- 10520 IF SS>0 AND Q=4 AND T-TLAST=0.5 AND T1(2)>0 THEN DP=7: GOTO 2190
- 10530 IF SS>=0 THEN 10100
- 10540 IF YL>90 AND RND(.)<0.8 THEN DP=6: GOTO 2190
- 10550 DP=3: GOTO 2190
-